﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Coolite.Ext.Web;
using QFD.Controller;

namespace QFD.View.Projeto
{
    public partial class grdProjeto : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectProjeto = from projeto in context.GetTable<PROJETO>() 
                                       from unidadeNegocio in context.GetTable<UNIDADENEGOCIO>()
                                       from tipoProjeto in context.GetTable<TIPOPROJETO>()
                                       where (projeto.CDTIPOPROJETO == tipoProjeto.CDTIPOPROJETO && projeto.CDUNIDADENEGOCIO == unidadeNegocio.CDUNIDADENEGOCIO)
                                       select new { projeto.CDPROJETO, projeto.NMPROJETO, projeto.DSPROJETO, unidadeNegocio.CDUNIDADENEGOCIO, unidadeNegocio.NMUNIDADENEGOCIO, tipoProjeto.CDTIPOPROJETO, tipoProjeto.DSTIPOPROJETO };
                var lista = selectProjeto.ToList();

                if (!Ext.IsAjaxRequest)
                {
                    this.StoreProjeto.DataSource = selectProjeto;
                    this.StoreProjeto.DataBind();
                }
            }
        }

        public Store GridStore
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            this.projeto.GridStore = this.StoreProjeto;
            this.GridStore = this.StoreProjeto;
        }

        protected void Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            using (QFDDataContext context = new QFDDataContext())
            {
                var selectProjeto = from projeto in context.GetTable<PROJETO>()
                                    from unidadeNegocio in context.GetTable<UNIDADENEGOCIO>()
                                    from tipoProjeto in context.GetTable<TIPOPROJETO>()
                                    where (projeto.CDTIPOPROJETO == tipoProjeto.CDTIPOPROJETO && projeto.CDUNIDADENEGOCIO == unidadeNegocio.CDUNIDADENEGOCIO)
                                    select new { projeto.CDPROJETO, projeto.NMPROJETO, projeto.DSPROJETO, unidadeNegocio.CDUNIDADENEGOCIO, unidadeNegocio.NMUNIDADENEGOCIO, tipoProjeto.CDTIPOPROJETO, tipoProjeto.DSTIPOPROJETO };
                var lista = selectProjeto.ToList();
                this.StoreProjeto.DataSource = selectProjeto;
                this.StoreProjeto.DataBind();
            }
        }

        protected void EditarProjeto(object sender, AjaxEventArgs e)
        {
            string cdProjeto = e.ExtraParams["cdProjeto"];
            this.projeto.SetProjeto(ControllerProjeto.getByProjeto(int.Parse(cdProjeto)));
            this.projeto.ShowProjeto();
        }

        protected void ConfirmDeleteProjeto(object sender, AjaxEventArgs e)
        {
            string cdProjeto = e.ExtraParams["cdProjeto"];
            PROJETO projeto = ControllerProjeto.getByProjeto(int.Parse(cdProjeto));
            ControllerProjeto.deleteProjeto(projeto);
            this.GridStore.AddScript(string.Format("{0}.reload();", this.GridStore.ClientID));
            Ext.Msg.Alert("Alerta!", "Projeto <b>" + projeto.NMPROJETO + " </b> excluído com sucesso!").Show();
        }
    }
}